Remove dead get_market_positions and fix 0.5.0 ImportError cleanly#385
Merged
Remove dead get_market_positions and fix 0.5.0 ImportError cleanly#385
Conversation
`get_market_positions` referenced `websocket_api.MarketPositions` and `websocket_api.GetMarketPositions`, neither of which exist in the proto schema, the Rust backend, or the generated websocket_api module. The method could never have worked — it was only invisible because 0.4.x had `from __future__ import annotations` making the dangling return type lazy. 0.5.0 dropped the future import, surfacing the bug at `import metagame` time and crash-looping every consumer. 0.5.1 plastered over it by restoring `from __future__ import annotations`, but that approach hides similar dead code from ever being caught. Instead, delete the method (positions are already streamed via Portfolio on the normal ServerMessage channel) and keep annotations eagerly evaluated. Bumps to 0.5.2.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
3 tasks
briansmiley
added a commit
that referenced
this pull request
Apr 14, 2026
Reverts commits 7cd390c..c5f4008 (15 commits) to restore the pre-multi-cohort state. Critical event tomorrow — rolling back to last known stable state. Reverted commits: - 7cd390c Multi-cohort support with per-member initial balance (#358) - 1a9259e Allow sudoed admins higher decimal precision (#370) - 612f7e7 Add select all / clear buttons to transfer recipient multiselect (#350) - ec96705 Link cohort members to existing users when added by email (#378) - eed7a73 Consolidate admin page data loading into single /api/admin/overview (#381) - eac92d0 Populate global user display name from id_token on login (ARB-515) (#380) - c5461ee Remove redundant Refresh button from /admin page (#382) - 77168e3 Sync Kinde admin role into global_user.is_admin (ARB-512) (#379) - 685ee0c Remove dead get_market_positions and fix 0.5.0 ImportError (#385) - e9d49f7 Constrain initial balance inputs to numeric values (#383) - 95ff300 Stop overwriting global_user display_name on admin REST calls (#386) - 0163100 Show user email on admin page while editing display name (#387) - 85f2c5f Fix user selection dropdown hover when multiple users have same name (#388) - 3fedb38 Add admins to cohort member list on access (ARB-510) (#389) - c5f4008 Fan out display-name rename to every cohort (ARB-513) (#390) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
briansmiley
added a commit
that referenced
this pull request
Apr 14, 2026
Reverts commits 7cd390c..c5f4008 (15 commits) to restore the pre-multi-cohort state. Critical event tomorrow — rolling back to last known stable state. Reverted commits: - 7cd390c Multi-cohort support with per-member initial balance (#358) - 1a9259e Allow sudoed admins higher decimal precision (#370) - 612f7e7 Add select all / clear buttons to transfer recipient multiselect (#350) - ec96705 Link cohort members to existing users when added by email (#378) - eed7a73 Consolidate admin page data loading into single /api/admin/overview (#381) - eac92d0 Populate global user display name from id_token on login (ARB-515) (#380) - c5461ee Remove redundant Refresh button from /admin page (#382) - 77168e3 Sync Kinde admin role into global_user.is_admin (ARB-512) (#379) - 685ee0c Remove dead get_market_positions and fix 0.5.0 ImportError (#385) - e9d49f7 Constrain initial balance inputs to numeric values (#383) - 95ff300 Stop overwriting global_user display_name on admin REST calls (#386) - 0163100 Show user email on admin page while editing display name (#387) - 85f2c5f Fix user selection dropdown hover when multiple users have same name (#388) - 3fedb38 Add admins to cohort member list on access (ARB-510) (#389) - c5f4008 Fan out display-name rename to every cohort (ARB-513) (#390) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Supersedes #384. 0.5.0 crash-looped every
metagameconsumer becauseimport metagameraisedAttributeErroronwebsocket_api.MarketPositions— a class that does not exist anywhere: not in the proto schema, not in the Rust backend, not in the generatedwebsocket_apimodule.get_market_positionsreferenced two phantom messages (MarketPositionsandGetMarketPositions) and could never have worked at runtime; it was only invisible because 0.4.x hadfrom __future__ import annotationsmaking the return type lazy.0.5.1 plastered over the crash by re-adding the future import. That works, but it permanently hides similar dead references from ever being caught at import. Better fix: delete the dead method, keep annotations eager.
Positions are already streamed to clients via the
Portfoliomessage on the normalServerMessagechannel, so nothing is lost by removing this method.Bumps to 0.5.2.
Test plan
uv sync && uv run python -c "from metagame import TradingClient"succeedsinspect.get_annotations(method, eval_str=True)resolves for everyTradingClientmethod (no other dangling references)uv buildproduces 0.5.2 artifactsmetagame==0.5.2in scenarios and confirm Fly smoke checks pass